【六、继承】多继承、继承中的构造函数和析构函数、类成员访问控制

您所在的位置:网站首页 c++ class 构造函数 析构函数 【六、继承】多继承、继承中的构造函数和析构函数、类成员访问控制

【六、继承】多继承、继承中的构造函数和析构函数、类成员访问控制

2023-02-14 22:27| 来源: 网络整理| 查看: 265

一、类成员的访问控制

C++类成员的访问控制主要有三种权限,分别是:

public:可在类内部使用、可在派生类内部使用、可在类外部使用;

protected:可在类内部使用、可在派生类内部使用、不可在类外部使用;

private:可在类内部使用、不可在派生类内部使用、不可在类外部使用;

在类中不写权限默认为private私有属性,而struct默认为public公有属性。这里有一个小坑需要注意,有时候我们在写构造函数的时候如果忘记加public,那么该构造函数默认为private私有,这将导致我们在定义对象的时候出错

#include using namespace std; class A { A(int a, int b) { this->a = a; this->b = b; } private: int a; int b; }; int main() { A a1(1, 2); system("pause"); return 0; }

编译程序会报错

image

因为构造函数默认为private,在外部不可访问,所以报错。只要在构造函数加上public权限即可。

二、继承

继承是C++的三大特性之一,通过继承可以实现代码复用。被继承的类称为基类,继承的类称为派生类,派生类是一种特殊的基类,它继承了基类除构造函数和析构函数之外的全部属性和方法,并且可以拥有自己的属性和方法,在继承过程中,派生类可以通过继承的属性来调整从基类继承的父类成员的对外访问属性。

public继承:父类public属性的成员在子类依然是public、父类protecte属性成员在子类依然是protected、父类private属性在子类依然是private ;(不改变父类中的属性)

protected继承:父类public属性的成员在子类变为protected、父类protected属性成员在子类依然是protected、父类private属性在子类依然是private;

private继承:父类public属性的成员在子类变为private、父类protected属性成员在子类变为private、父类private属性在子类依然是private;(全部变为private属性)

使用派生定义对象时,基类的私有成员其实也存在于派生类定义的对象中的,只不过无法访问。

继承案例

#include using namespace std; class A { public: int a; void print_data_a() { cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3